import _ from "lodash";
import fs from "fs";
import path from "path";
import { stat } from "./stat";

function mkdir(dir: string): Promise<boolean> {
  return new Promise((res, rej) => {
    fs.mkdir(dir, (err) => {
      if (!_.isEmpty(err)) {
        rej(err);
      } else {
        res(true);
      }
    });
  });
}

// 判断路径是否存在，若不存在则创建
async function mkdirs(dirs: string): Promise<boolean> {
  let res: boolean = false;
  try {
    let status = await stat(dirs);
    if (status && status.isDirectory()) {
      // 如果文件夹存在
      res = true;
    }
    // 文件存在，但不是文件夹
  } catch (err) {
    // 文件不存在，递归
    let sup: string = path.parse(dirs).dir; // 获取上级目录
    let status = await mkdirs(sup);
    if (status) {
      return await mkdir(dirs);
    }
  }
  return res;
}

export { mkdir, mkdirs };
